# 注意:
#  天猫 需要
#  1.把购买数量 和 商家编码   互换一下数量
#  2.购物金 相关的删掉  商家编码为空的  购买数量 5  的商家编码
# 117g肥汁米线袋装5袋
# 252g欢享版土豆粉5袋
# 家庭版袋装米线5袋


# coding:utf-8
import pandas as pd  # 天猫实付金额里有空值，要填充0
import pymysql

# 读取文件
pdd1 = pd.read_excel(r'G:\工作\2025年订单\11月\PDD1.xlsx', dtype={'订单号': str})
pdd2 = pd.read_excel(r'G:\工作\2025年订单\11月\PDD2.xlsx', dtype={'订单号': str})
pdd3 = pd.read_excel(r'G:\工作\2025年订单\11月\PDD3.xlsx', dtype={'订单号': str})
pdd4 = pd.read_excel(r'G:\工作\2025年订单\11月\PDD4.xlsx', dtype={'订单号': str})
pdd5 = pd.read_excel(r'G:\工作\2025年订单\11月\PDD5.xlsx', dtype={'订单号': str})
pdd6 = pd.read_excel(r'G:\工作\2025年订单\11月\PDD6.xlsx', dtype={'订单号': str})

ks = pd.read_excel(r'G:\工作\2025年订单\11月\快手1.xlsx', dtype={'订单号': str})
ks2 = pd.read_excel(r'G:\工作\2025年订单\11月\快手2.xlsx', dtype={'订单号': str})
ks3 = pd.read_excel(r'G:\工作\2025年订单\11月\快手3.xlsx', dtype={'订单号': str})
ks4 = pd.read_excel(r'G:\工作\2025年订单\11月\快手4.xlsx', dtype={'订单号': str})


jd = pd.read_excel(r'G:\工作\2025年订单\11月\JD.xlsx', dtype={'订单号': str})
# 清理非数字字符后再转换
jd['商家应收'] = jd['商家应收'].astype(str).str.replace(r'[^\d.-]', '', regex=True)
jd['商家应收'] = jd['商家应收'].replace('', 0)
jd['商家应收'].fillna(0).astype(float)
jd_qc = jd.drop_duplicates(subset=['订单号'])  # 订单编号去重，统计销售额

jd1 = pd.read_excel(r'G:\工作\2025年订单\11月\JD1.xlsx', dtype={'订单号': str})
# 清理非数字字符后再转换
jd1['商家应收'] = jd1['商家应收'].astype(str).str.replace(r'[^\d.-]', '', regex=True)
jd1['商家应收'] = jd1['商家应收'].replace('', 0)
jd1['商家应收'].fillna(0).astype(float)
jd1_qc = jd1.drop_duplicates(subset=['订单号'])  # 订单编号去重，统计销售额



tm = pd.read_excel(r'G:\工作\2025年订单\11月\天猫.xlsx', dtype={'子订单编号': str})
xhs = pd.read_excel(r'G:\工作\2025年订单\11月\小红书.xlsx', dtype={'订单号': str})
sph = pd.read_excel(r'G:\工作\2025年订单\11月\视频号.xlsx', dtype={'订单号': str})
tbmc = pd.read_excel(r'G:\工作\2025年订单\11月\淘宝买菜.xlsx', dtype={'子订单号': str})
tgc = pd.read_excel(r'G:\工作\2025年订单\11月\淘工厂.xlsx', dtype={'子订单号': str})
tgc2 = pd.read_excel(r'G:\工作\2025年订单\11月\淘工厂2.xlsx', dtype={'子订单号': str})



pdd1_date=pdd1.loc[:,['订单号','商家编码-规格维度','商品数量(件)','商家实收金额(元)','用户实付金额(元)','订单状态','售后状态','商家实收金额(元)','支付时间']]
pdd1_date['平台']='拼多多1'
pdd1_date['用户实付金额(元)']=0
pdd1_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

pdd2_date=pdd2.loc[:,['订单号','商家编码-规格维度','商品数量(件)','商家实收金额(元)','用户实付金额(元)','订单状态','售后状态','商家实收金额(元)','支付时间']]
pdd2_date['平台']='拼多多2'
pdd2_date['用户实付金额(元)']=0
pdd2_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

pdd3_date=pdd3.loc[:,['订单号','商家编码-规格维度','商品数量(件)','商家实收金额(元)','用户实付金额(元)','订单状态','售后状态','商家实收金额(元)','支付时间']]
pdd3_date['平台']='拼多多3'
pdd3_date['用户实付金额(元)']=0
pdd3_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

pdd4_date=pdd4.loc[:,['订单号','商家编码-规格维度','商品数量(件)','商家实收金额(元)','用户实付金额(元)','订单状态','售后状态','商家实收金额(元)','支付时间']]
pdd4_date['平台']='拼多多4'
pdd4_date['用户实付金额(元)']=0
pdd4_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

pdd5_date=pdd5.loc[:,['订单号','商家编码-规格维度','商品数量(件)','商家实收金额(元)','用户实付金额(元)','订单状态','售后状态','商家实收金额(元)','支付时间']]
pdd5_date['平台']='拼多多5'
pdd5_date['用户实付金额(元)']=0
pdd5_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

pdd6_date=pdd6.loc[:,['订单号','商家编码-规格维度','商品数量(件)','商家实收金额(元)','用户实付金额(元)','订单状态','售后状态','商家实收金额(元)','支付时间']]
pdd6_date['平台']='拼多多6'
pdd6_date['用户实付金额(元)']=0
pdd6_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

pdd_date=pd.concat([pdd1_date,pdd2_date,pdd3_date,pdd4_date,pdd6_date,pdd5_date])

ks_date=ks.loc[:,['订单号','SKU编码','成交数量','实付款','平台补贴','订单状态','售后状态','实付款','订单创建时间']]
ks_date['平台']='快手'
ks_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']
ks_date['订单应付金额']=ks_date['订单应付金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks_date['退款金额']=ks_date['退款金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks_date['平台优惠']=0

ks2_date=ks2.loc[:,['订单号','SKU编码','成交数量','实付款','平台补贴','订单状态','售后状态','实付款','订单创建时间']]
ks2_date['平台']='快手2'
ks2_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']
ks2_date['订单应付金额']=ks2_date['订单应付金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks2_date['退款金额']=ks2_date['退款金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks2_date['平台优惠']=0

ks3_date=ks3.loc[:,['订单号','SKU编码','成交数量','实付款','平台补贴','订单状态','售后状态','实付款','订单创建时间']]
ks3_date['平台']='快手3'
ks3_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']
ks3_date['订单应付金额']=ks3_date['订单应付金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks3_date['退款金额']=ks3_date['退款金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks3_date['平台优惠']=0

ks4_date=ks4.loc[:,['订单号','SKU编码','成交数量','实付款','平台补贴','订单状态','售后状态','实付款','订单创建时间']]
ks4_date['平台']='快手4'
ks4_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']
ks4_date['订单应付金额']=ks4_date['订单应付金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks4_date['退款金额']=ks4_date['退款金额'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号
ks4_date['平台优惠']=0



jd_date=jd.loc[:,['订单号','商家SKUID','订购数量','商家应收','余额支付','订单状态','订单状态','商家应收','下单时间']]
jd_date['平台']='京东旗舰店'
jd_date['余额支付']=0
jd_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

jd1_date=jd1.loc[:,['订单号','商家SKUID','订购数量','商家应收','余额支付','订单状态','订单状态','商家应收','下单时间']]
jd1_date['平台']='京东旗舰店内部'
jd1_date['余额支付']=0
jd1_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

# xhs_date=xhs.loc[:,['订单号','SKU规格','SKU件数','商家应收金额(元)（支付金额）','平台优惠(元)','订单状态','售后状态','商家应收金额(元)（支付金额）','订单创建时间']]
xhs_date = xhs.loc[:, ['订单号', '商家编码', 'SKU件数', '商家应收金额(元)（支付金额）', '平台优惠(元)', '订单状态', '售后状态','商家应收金额(元)（支付金额）', '订单创建时间']]
xhs_date['平台']='小红书'
xhs_date['平台优惠(元)']=0
xhs_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']


tm_date=tm.loc[:,['子订单编号','商家编码','购买数量','买家实付金额','商品价格','订单状态','退款状态','退款金额','订单创建时间']]
tm_date['平台']='天猫旗舰店'
tm_date['商品价格']=0
tm_date['退款金额']=tm_date['退款金额'].map(lambda x: float(str(x).replace('无退款申请','0'))) #替换无退款申请
tm_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

sph_date=sph.loc[:,['订单号','SKU编码(自定义)','商品数量','订单实际支付金额','订单运费','订单状态','商品售后','商品已退款金额','订单下单时间']]
sph_date['平台']='视频号'
sph_date['订单运费']=0
sph_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

#tbmc_date=tbmc.loc[:,['子订单号','商家编码','数量','付款金额（元）','商品单价（元）','交易状态','交易状态','付款金额（元）','交易成功时间']]
#tbmc_date['平台']='淘宝买菜'
#tbmc_date['商品单价（元）']=0
#tbmc_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']
#tbmc_date['订单应付金额']=tbmc_date['订单应付金额'].map(lambda x: float(str(x).replace('￥',''))) ##去除￥符号
#tbmc_date['退款金额']=tbmc_date['退款金额'].map(lambda x: float(str(x).replace('￥',''))) ##去除￥符号

tbmc_date=tbmc.loc[:,['子订单编号','商家编码','宝贝数量','子单实际支付金额','买家应付邮费','订单状态','订单状态','退款金额','订单创建时间']]
tbmc_date['平台']='淘宝买菜'
tbmc_date['买家应付邮费']=0
tbmc_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

tgc_date=tgc.loc[:,['子订单编号','商家编码','宝贝数量','子单实际支付金额','买家应付邮费','订单状态','订单状态','退款金额','订单创建时间']]
tgc_date['平台']='淘工厂'
tgc_date['买家应付邮费']=0
tgc_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']

tgc2_date=tgc2.loc[:,['子订单编号','商家编码','宝贝数量','子单实际支付金额','买家应付邮费','订单状态','订单状态','退款金额','订单创建时间']]
tgc2_date['平台']='淘工厂2'
tgc2_date['买家应付邮费']=0
tgc2_date.columns=['订单号','商家编码','商品数量','订单应付金额','平台优惠','订单状态','售后状态','退款金额','订单下单时间','平台']
#合并


date_concat_1=pd.concat([jd_date,jd1_date,pdd_date,ks_date,ks2_date,ks3_date,xhs_date,tm_date,sph_date,tbmc_date,tgc_date,tgc2_date])


date_concat_1['商家编码']=date_concat_1['商家编码'].str.strip()
# date_concat_1=date_concat_1.applymap(lambda x : str(x).strip())
date_concat_1=date_concat_1.map(lambda x : str(x).strip() if pd.notnull(x) else '')


# 处理数值列
numeric_columns = ['商品数量', '订单应付金额', '平台优惠', '退款金额']
for col in numeric_columns:
    if col in date_concat_1.columns:
        date_concat_1[col] = pd.to_numeric(date_concat_1[col], errors='coerce').fillna(0)

# 处理NaN值
date_concat_1 = date_concat_1.where(pd.notnull(date_concat_1), None)

# 处理时间列
date_concat_1['订单下单时间']=date_concat_1['订单下单时间'].replace("",'1998-01-01 00:00:00')
date_concat_1['订单下单时间']=pd.to_datetime(date_concat_1['订单下单时间'])



db = pymysql.connect(host="localhost", user="root", password="hui123456", db='dbtest')
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
sqll=('insert into niandu_day values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)')
for val in date_concat_1.values:
    cursor.execute(sqll,tuple(val))


db.commit()
db.close()
